requirejs
		.config({
			baseUrl : '../js/libs',
			paths : {
				jquery : 'jquery.min',
				jquery_route : 'jquery.route',
				bootstrap : "../../bootstrap-3.3.5/dist/js/bootstrap.min",
				menu : "../modules/index/menu",
				config : "../common/config",
				common : "../common/common",
				arttemplateUtil : '../common/arttemplate-util',
				cxselect : "../plugins/cxSelect/jquery.cxselect.min",
				"webuploader" : "../plugins/webuploader/js/webuploader",
				"customUploader_bath" : "../plugins/webuploader/js/customUploader_bath",
				"kindeditor" : "../plugins/editor/kindeditor",
				"kindeditor_lang" : "../plugins/editor/lang/zh_CN",
		        stringUtil: "../common/string-util",
		        validform:"../plugins/Validform/Validform_v5.3.2",
		        uploadify : '../plugins/uploadify/jquery.uploadify'
			},
			waitSeconds : 15,
			map : {
				'*' : {
					'css' : 'css'
				}
			},
			shim : { // 引入没有使用requirejs模块写法的类库。backbone依赖underscore
				'jquery' : {
					exports : '$'
				},
				'bootstrap' : [ 'jquery','jquery_route'],
				'uploadify' : [ 'jquery',
						'css!../plugins/uploadify/uploadify.css' ],
				'customUploader_bath' : [
						'css!../plugins/webuploader/css/webuploader.css',
						'webuploader' ],
				'kindeditor_lang' : [
						'css!../plugins/editor/plugins/code/prettify.css',
						'kindeditor' ],
				'validform':['jquery']
			}
		});
define([ 'jquery', 'jquery_route', 'arttemplateUtil' ,'common','config','stringUtil','validform', 'customUploader_bath',
			'kindeditor_lang','uploadify' ], function($,
		jquery_route, arttemplateUtil,common,config,stringUtil  ) {

	// 删除的skuid集合
	var delskuids=[];
	
	// 主加载控制器
	$.controller("goodsController", function($model, $tplHtml, $defobj,
			$modelobj, $paramobj, $this) {
		newque=[];
		delskuids=[];
		// 判断判断是有id 如有id那么是编辑
		if(typeof $paramobj.id != 'undefined' && $paramobj.id != ''){
			// 根据商品id获取商品信息
			var _obj={"goodsId":$paramobj.id};
			common.ajax_request2('get','/api/v1/queryGoodsMsgById',_obj,function($data,$code){
				_obj=$data;
			},false);
			_obj.sysconfig=$defobj.sysconfig;
			_obj.imgRoot=config.imgRoot();
			$model(_obj);
		}else{
			$model($defobj);
		}
		
		// 初始化
		app.radioClick();
		app.specilInit();
		app.removeLi();
		app.uploadifyFn();
		app.kindeditor(true);

		// 初始化表单验证
		app.releasegoodsfrm(true);
		
		// 当时编辑时候 初始化商品详情设置商品详情
		if(typeof $paramobj.id != 'undefined' && $paramobj.id != ''){
			common.ajax_request2('get','/api/v1/getGoodsDetails_appByGoodsId',{goodsId:$paramobj.id},function($data,$code){
				if($data && $data.length >0){
					if('NULL' != $data[0].content){
						// 设置商品详情到文本域和在线编辑器
						//$('#goods_details').html($data[0].content);
						app.kindeditor().html($data[0].content);
					}
				}
			});
			
		}
		
		
		// 执行自动加载内容
		arttemplateUtil.auload();


		// 注册点击提交事件
		$('#releasegoods .btn-primary').on('click',function(e){
			e.preventDefault();
			
			$('input[name=del_skuids]').val(delskuids);
			
			// 验证表单和规格
			if(app.releasegoodsfrm().check() && app.checkgg()){
				common.loading();
				// 验证成功提交商品信息
				common.ajax_request2('post','/api/v1/saveOrEditGoods',$('#releasegoods').serializeArray(),function($data,$business,$code){
					layer.closeAll('loading'); //关闭加载层
					if($code=='200'){
						// 判断是发布到仓库 还是出售中 然后跳转页面
						if(typeof $paramobj.id != 'undefined' && $paramobj.id != ''){
							// 如果有id 则判断为编辑成功
							window.location.hash='#goods/releasegoods/submitresult/success3/'+$data;
						}else{
							if($('input[name=goods_status]:checked').val()==1){
								// 发到仓库中
								window.location.hash='#goods/releasegoods/submitresult/success2/'+$data;
							}else{
								// 发布成功
								window.location.hash='#goods/releasegoods/submitresult/success/'+$data;
							}
						}

					}else{
						if(typeof $paramobj.id != 'undefined' && $paramobj.id != ''){
							// 编辑失败
							window.location.hash='#goods/releasegoods/submitresult/editerror';
						}else{
							window.location.hash='#goods/releasegoods/submitresult/商品发布失败';
						}
					}
				});
			}else {
				//如果有报错，则将定位到默认第一个报错的位置
				$('#releasegoods').find('.Validform_wrong').parent().find('#addgg').focus();
				$('#releasegoods').find('.Validform_wrong').eq(0).parent().find('.Validform_error').focus();
			}
		});

	});
	
	// 加载规格列表
	$.controller("model.goods.skulist", function($model, $tplHtml, $defobj,
			$modelobj, $paramobj, $this) {
		if(typeof $paramobj.goodsId != 'undefined' && $paramobj.goodsId != ''){
			common.loading();
			common.ajax_request2('get','/api/v1/querySKUList',{goodsId:$paramobj.goodsId},function($data,$code){
				layer.closeAll('loading'); //关闭加载层
				$defobj.data=$data;
				// 回调model
				$model($defobj);
				// 初始化选中事件
				app.type_target_init();
				if($code=='200' && $data.length>0){
					$('.newgg').show();
				}
			});
		}
	});
	
	
	// 加载小区模板
/*	$.controller("model.goods.vip_trans_area_list", function($model, $tplHtml, $defobj,
			$modelobj, $paramobj, $this) {
		// 判断对象是否存在 in-name 表单名字 如果有设置到父级 防止属性丢失
		if(typeof $this.attr('in-name') === 'string'){
			$this.parents('.form-group').attr('in-name',$this.attr('in-name'));
		}
		common.ajax_request2('get','/api/v1/vip_trans_area_list',{pageSize:999, pageNo:1},function($data,$code){
			// 加载成后将之前设置在父级的 in-name 表单名字设置到selectName 变量 供模板页面取值
			if(typeof $this.parents('.form-group').attr('in-name') === 'string'){
				$defobj.selectName=$this.parents('.form-group').attr('in-name');
			}
			$defobj.data=$data;
			// 回调model
			$model($defobj);
			// 初始化选中事件
			app.type_target_init();
			// 设置选中事件如果是编辑状态 下那么设置默认选中项
			if(typeof $paramobj.id != 'undefined' && $paramobj.id != ''){
				$('select[name='+$defobj.selectName+'] option[value='+$paramobj.id+']').attr("selected",true);
			}
			// 绑定重新加载点击事件
			$('select[name='+$defobj.selectName+']').parents('.form-group').find('.box4').on('click',function(e){
				e.preventDefault();
				// 设置到页面 会自动加载内容
				$('select[name='+$defobj.selectName+']').parents('.form-group').html('<script art-model="goods.vip_trans_area_list" art-controller="model.goods.vip_trans_area_list" active></script>');
				// 执行自动加载
				arttemplateUtil.auload();
			});
		});
	});*/
	
	// 加载配送时间
	$.controller("model.goods.store_frequency_list", function($model, $tplHtml, $defobj,
			$modelobj, $paramobj, $this) {
		// 判断对象是否存在 in-name 表单名字 如果有设置到父级 防止属性丢失
		if(typeof $this.attr('in-name') === 'string'){
			$this.parents('.form-group').attr('in-name',$this.attr('in-name'));
		}
		common.ajax_request2('get','/api/v1/store_frequency_list',{pageSize:999, pageNo:1},function($data,$code){
			// 加载成后将之前设置在父级的 in-name 表单名字设置到selectName 变量 供模板页面取值
			if(typeof $this.parents('.form-group').attr('in-name') === 'string'){
				$defobj.selectName=$this.parents('.form-group').attr('in-name');
			}
			$defobj.data=$data;
			// 回调model
			$model($defobj);
			// 初始化选中事件
			app.type_target_init();
			// 设置选中事件如果是编辑状态 下那么设置默认选中项
			if(typeof $paramobj.id != 'undefined' && $paramobj.id != ''){
				$('select[name='+$defobj.selectName+'] option[value='+$paramobj.id+']').attr("selected",true);
			}
			// 绑定重新加载点击事件
			$('select[name='+$defobj.selectName+']').parents('.form-group').find('.box4').on('click',function(e){
				e.preventDefault();
				// 设置到页面 会自动加载内容
				$('select[name='+$defobj.selectName+']').parents('.form-group').html('<script art-model="goods.store_frequency_list" art-controller="model.goods.store_frequency_list" active></script>');
				// 执行自动加载
				arttemplateUtil.auload();
			});
		});
	});
	

	// 加载分类
	$.controller("model.goods.class", function($model, $tplHtml, $defobj,
			$modelobj, $paramobj, $this) {

		// 设置 pid 正向 设置id 逆向
		// 设置box class
		var _boxClassName='goodsclassbox';
		var label_type=0;
		if($('#label_type_h')>0){
			label_type=$('#label_type_h').val();
		}else if($('input[name=label_type]:checked').length>0){
			label_type=$('input[name=label_type]:checked').val();
		}
		if(typeof $paramobj.pid === 'undefined' && typeof config.sysconfig() === 'object'){
			if(typeof config.sysconfig()['gc_id_lt'+label_type] != 'undefined'){
				$paramobj.pid = config.sysconfig()['gc_id_lt'+label_type];
			}
		}
		// 绑定选择事件
		var categoryevent = function(box){

			// 移除所有name
			$(box+' select').removeAttr('name');
			// 设置最后一个元素的name
			$(box+' select:last').attr('name',$(box).attr('in-name'));

			// 绑定选择事件
			$(box+' select').off('change').on('change',function(){
				var _sid=$(this).val();
				var _li=$(this).parent('li');
				_li.nextAll('li').remove();
				
				// 移除所有name
				$(box+' select').removeAttr('name');
				// 设置最后一个元素的name
				$(box+' select:last').attr('name',$(box).attr('in-name'));
				if(_sid !='' && _sid > 0){
					_li.after('<script art-model="goods.class" art-controller="model.goods.class" art-param=\'{\"pid\":\"'+_sid+'\"}\' active></script>');
					// 执行自动加载
					arttemplateUtil.auload($(box+''));
				}
			});
		};
		
		// 在父级设置个class 用来标记该选项
		if(!$this.parent().hasClass(_boxClassName)){
			$this.parent().attr('in-name',$this.attr('in-name'));
			$this.parent().addClass(_boxClassName);
		}
		
		if(typeof $paramobj.id != 'undefined' && $paramobj.id != ''){
			var _id = $paramobj.id;
			// 逆向 获取分类数据
			common.loading();
			common.ajax_request2('get','/api/v1/queryGoodsClass',{label_type:label_type,id:_id},function($data,$code){
				layer.closeAll('loading'); //关闭加载层
				var _loadinit=false;
				if($code=='200'){
					// 成功
					$defobj.data=$data;
					
					if($data.length>0 ){
						// 回调model
						$model($defobj);
						// 设置选中分类
						$('.'+_boxClassName+' select option[value='+_id+']').attr("selected",true);
						
						if($data.length > 0 && $data[0].parent_id != ''){
							// 设置逆向获取
							var _li = $('.'+_boxClassName+' select:first').parent('li');
							_li.before('<script art-model="goods.class" art-controller="model.goods.class" art-param=\'{\"id\":\"'+$data[0].parent_id+'\"}\' active></script>');
							arttemplateUtil.auload($('.'+_boxClassName));
						}else{
							// 绑定选择事件
							categoryevent('.'+_boxClassName);
						}
					}
					if($('#gc_idbox ul.ul-sel li').length>0){
						// 绑定选择事件
						categoryevent('.'+_boxClassName);
					}else{
						// 没有任何分类认为失败
						_loadinit=true;
					}
				}else{
					// 失败
					_loadinit=true;
				}
				// 如果失败从新获取数据
				if(_loadinit && $('.'+_boxClassName+' select').length == 0){
					if(true || typeof $paramobj.pid != 'undefined'){
						var _pid = $paramobj.pid;
						// 逆向错误时候 正向 获取分类数据
						common.loading();
						common.ajax_request2('get','/api/v1/queryGoodsClass',{label_type:label_type,parent_id:_pid},function($data,$code){
							layer.closeAll('loading'); //关闭加载层
							if($code=='200'){
								$defobj.data=$data;
								// 如果数据不存在且一个分类都没有那么显示默认分类
								if($data.length==0){
									$defobj.flag=true;
								}
								// 回调model
								$model($defobj);
							}else{
								// 获取出现错误时候显示
								$defobj.data=[];
								$defobj.flag=true;
								// 回调model
								$model($defobj);
							}
							// 绑定选择事件
							categoryevent('.'+_boxClassName);
						});
					}
				}

			});
		}else if(true || typeof $paramobj.pid != 'undefined'){
			var _pid = $paramobj.pid;
			// 正向 获取分类数据
			common.loading();
			common.ajax_request2('get','/api/v1/queryGoodsClass',{label_type:label_type,parent_id:_pid},function($data,$code){
				layer.closeAll('loading'); //关闭加载层
				if($code=='200'){
					$defobj.data=$data;
					// 如果数据不存在且一个分类都没有那么显示默认分类
					if($data.length==0 && $('.'+_boxClassName+' select').length == 0){
						$defobj.flag=true;
					}
					// 回调model
					$model($defobj);
				}else{
					// 出现错误时候显示
					$defobj.data=[];
					$defobj.flag=true;
					// 回调model
					$model($defobj);
				}
				// 绑定选择事件
				categoryevent('.'+_boxClassName);
			});
		}
	});
	
	// 加载分类
	$.controller("model.goods.category", function($model, $tplHtml, $defobj,
			$modelobj, $paramobj, $this) {
		// 设置 pid 正向 设置id 逆向
		// 设置box class
		var _boxClassName='goodscatebox';
		
		// 绑定选择事件
		var categoryevent = function(box){

			// 移除所有name
			$(box+' select').removeAttr('name');
			// 设置最后一个元素的name
			$(box+' select:last').attr('name',$(box).attr('in-name'));


			// 绑定选择事件
			$(box+' select').off('change').on('change',function(){
				var _sid=$(this).val();
				var _li=$(this).parent('li');
				_li.nextAll('li').remove();
				
				// 移除所有name
				$(box+' select').removeAttr('name');
				// 设置最后一个元素的name
				$(box+' select:last').attr('name',$(box).attr('in-name'));
				if(_sid !='' && _sid > 0){
					_li.after('<script art-model="goods.category" art-controller="model.goods.category" art-param=\'{\"pid\":\"'+_sid+'\"}\' active></script>');
					// 执行自动加载
					arttemplateUtil.auload($(box+''));
				}
			});
		};
		
		// 在父级设置个class 用来标记该选项
		if(!$this.parent().hasClass(_boxClassName)){
			$this.parent().attr('in-name',$this.attr('in-name'));
			$this.parent().addClass(_boxClassName);
		}
		
		if(typeof $paramobj.id != 'undefined' && $paramobj.id != ''){
			var _id = $paramobj.id;
			// 逆向 获取分类数据
			common.loading();
			common.ajax_request2('get','/api/v1/queryGoodsCategory',{id:_id},function($data,$code){
				layer.closeAll('loading'); //关闭加载层
				var _loadinit=false;
				if($code=='200'){
					// 成功
					$defobj.data=$data;
					// 回调model
					$model($defobj);
					// 设置选中分类
					$('.'+_boxClassName+' select option[value='+_id+']').attr("selected",true);
					
					if($data.length > 0){
						// 设置逆向获取
						var _li = $('.'+_boxClassName+' select:first').parent('li');
						_li.before('<script art-model="goods.category" art-controller="model.goods.category" art-param=\'{\"id\":\"'+$data[0].parent_id+'\"}\' active></script>');
						arttemplateUtil.auload($('.'+_boxClassName));
					}else{
						// 绑定选择事件
						categoryevent('.'+_boxClassName);
					}
				}else{
					// 失败
					_loadinit=true;
				}
				if(_loadinit){
					if(true || typeof $paramobj.pid != 'undefined'){
						var _pid = $paramobj.pid;
						// 正向 获取分类数据
						common.ajax_request2('get','/api/v1/queryGoodsCategory',{pid:_pid},function($data,$code){
							if($code=='200'){
								$defobj.data=$data;
								// 回调model
								$model($defobj);
								
								// 绑定选择事件
								categoryevent('.'+_boxClassName);
							}
						});
					}
				}

			});
		}else if(typeof $paramobj.pid != 'undefined'){
			var _pid = $paramobj.pid;
			// 正向 获取分类数据
			common.loading();
			common.ajax_request2('get','/api/v1/queryGoodsCategory',{pid:_pid},function($data,$code){
				layer.closeAll('loading'); //关闭加载层
				if($code=='200'){
					$defobj.data=$data;
					// 回调model
					$model($defobj);
					
					// 绑定选择事件
					categoryevent('.'+_boxClassName);
				}
			});
		}
	});

	
	

	var newque=[];
	var app={
			// 初始化表单验证
			releasegoodsfrm:function(flag){
				if(typeof app._releasegoodsfrm ==='undefined' || true){
					app._releasegoodsfrm = $("#releasegoods").Validform({
						tiptype:4,
						postonce:true,
						isShowRight:false,
						datatype:{
							"price":/^0\.[1-9]$|^0\.[1-9][0-9]$|^0\.[0-9][1-9]$|^([1-9][0-9]{0,4})(\.[0-9]{1,2})?$/,
							"priceCompare": function(gets,obj,curform,regxp){
								var flag=regxp['price'].test(gets);
								
								if(flag && typeof obj.attr('ltto') === 'string' && typeof obj.attr('lttomsg') === 'string'){
									var _eqtoinput=curform.find('input[name='+obj.attr('ltto')+']');
									if(regxp['price'].test(_eqtoinput.val())){
										if(gets-_eqtoinput.val()<0){
											return obj.attr('lttomsg');
										}else{
											// 移除ltto 的错误和内容
											_eqtoinput.removeClass('Validform_error');
											_eqtoinput.parent().find('.Validform_wrong').removeClass('Validform_wrong').html('');
										}
									}
								}
								if(flag && typeof obj.attr('gtto') === 'string' && typeof obj.attr('gttomsg') === 'string'){
									var _eqtoinput=curform.find('input[name='+obj.attr('gtto')+']');
									if(regxp['price'].test(_eqtoinput.val())){
										if(gets-_eqtoinput.val()>0){
											return obj.attr('gttomsg');
										}else{
											// 移除gtto 的错误和内容
											_eqtoinput.removeClass('Validform_error');
											_eqtoinput.parent().find('.Validform_wrong').removeClass('Validform_wrong').html('');
										}
									}
								}
								return flag;
							}
						}
					});
				}
				return app._releasegoodsfrm;
			},
			// 规格验证拼接 方法
			checkgg:function(){
				var _flag=true;
				var _errmsg='';
				var _gobjs=[];
				var pattern=[];
				var _sku_n1 = /^[\s\S]{1,12}$/;
				var _sku_n2 = /^[1-9][0-9]{0,2}$/;
				var _regnumber= /^0\.[1-9]$|^0\.[1-9][0-9]$|^0\.[0-9][1-9]$|^([1-9][0-9]{0,4})(\.[0-9]{1,2})?$/;
				
				var ltype=$('.label_type input[name=label_type]:checked').val();
				if(ltype=='2'){
					// 循环获取规格信息
					$("#ggbd li").each(function(_index,_data){
						if(_flag){
							// 定义规格对象
							var _gobj={};
							var _skuinfo=[];
							// 循环获取单挑信息的输入框
							$(this).find('input').each(function(_index2,_data2){
								$(this).removeClass('Validform_error');
								if(_flag){
									var _val=$(this).val();
									if($(this).attr('name')!='skuid' && _val==''){
										$('#psgg span.Validform_checktip').html($($('.newgg ul.ul-gghd li').get(_index2)).text()+' 不能为空 ');
										_flag=false;
									}
									if($(this).attr('name') =='sku_n1' && _val!="" && !_sku_n1.test(_val)){
										// 验证长度
										$('#psgg span.Validform_checktip').html($($('.newgg ul.ul-gghd li').get(_index2)).text()+' 必须是1-12个字符');
										//$(this).focus();
										_flag=false;
									}else if($(this).attr('name') =='sku_n2' && _val!="" && !_sku_n2.test(_val)){
										// 验证1-999
										$('#psgg span.Validform_checktip').html($($('.newgg ul.ul-gghd li').get(_index2)).text()+' 必须是数字且在1-999之间');
										//$(this).focus();
										_flag=false;
									}else if(($(this).attr('name') =='goods_price_old' || $(this).attr('name') =='goods_price_before') && _val!="" && !_regnumber.test(_val)){
										// 验证数值
										$('#psgg span.Validform_checktip').html($($('.newgg ul.ul-gghd li').get(_index2)).text()+' 必须是数字且在0.01-99999.99之间');
										//$(this).focus();
										_flag=false;
									}

									// 判断 价格大小
									if(_flag && $(this).attr('name') =='goods_price_before' && _gobj["goods_price_old"] != 'undefined' && _val!="" && _gobj["goods_price_old"]-_val<=0){
										$('#psgg span.Validform_checktip').html($($('.newgg ul.ul-gghd li').get(_index2)).text()+' 必须小于 ' +$($('.newgg ul.ul-gghd li').get(_index2-1)).text());
										//$(this).focus();
										_flag=false;
									}
									
									/*// 判断 价格大小
									if(_flag && $(this).attr('name') =='goods_price_after' && _gobj["goods_price_before"] != 'undefined' && _gobj["goods_price_before"]-_val<0){
										$('#psgg span.Validform_checktip').html($($('.newgg ul.ul-gghd li').get(_index2)).text()+' 必须小于或等于 ' +$($('.newgg ul.ul-gghd li').get(_index2-1)).text());
										//$(this).focus();
										_flag=false;
									}*/
									
									// 组装规格串
									if($(this).attr('name') =='sku_n1'){
										_skuinfo.push({"sku_id":1,"sku_value":_val});
									}else if($(this).attr('name') =='sku_n2'){
										_skuinfo.push({"sku_id":2,"sku_value":_val});
									}else if($(this).attr('name') =='skuid'){
										_gobj['id']=_val;
									}else{
										_gobj[$(this).attr('name')]=_val;
									}
									if(!_flag){
										$(this).addClass('Validform_error');
									}
								}
							});
							_gobj.skuinfo=_skuinfo;
							_gobjs.push(_gobj);
						}
					});
					if(_flag &&  _gobjs.length==0){
						_flag=false;
						$('#psgg span.Validform_checktip').html('规格必填!');
					}
				}
				
				if(_flag){
					$('input[name=sku]').val(JSON.stringify(_gobjs));
					$('#psgg span.Validform_checktip').html('');
					$('#psgg span.Validform_checktip').removeClass('Validform_wrong');
				}else{
					$('input[name=sku]').val('');
					$('#psgg span.Validform_checktip').addClass('Validform_wrong');
				}
				return _flag;
			},
			type_target_init:function(){
				// 根据类型分组显示标签

				// $('.Validform_wrong').html('').removeClass('Validform_wrong');
				// $('.Validform_error').removeClass('Validform_error');
				
				var ltype=$('.label_type input[name=label_type]:checked').val();
				$('[type-target=3]').show();
				$('[type-target='+ltype+']').show();
				app.releasegoodsfrm().unignore($('[type-target='+ltype+'] input,[type-target='+ltype+'] select'));
				// $('[type-target='+ltype+'] input,[type-target='+ltype+']
				// select').removeAttr('ignore');
				if(ltype==1){
					$('[type-target=2]').hide();
					app.releasegoodsfrm().ignore($('[type-target=2] input,[type-target=2] select'));
					// $('[type-target=2] input,[type-target=2]
					// select').attr('ignore','ignore');
				}else{
					$('[type-target=1]').hide();
					app.releasegoodsfrm().ignore($('[type-target=1] input,[type-target=1] select'));
					// $('[type-target=1] input,[type-target=1]
					// select').attr('ignore','ignore');
				}
				
			},
			/**
			 * 服务商品，销售商品，radio 点击切换事件
			 * 
			 * @return {[type]} [description]
			 */
			radioClick : function() {
				app.type_target_init();
				$("input[name=label_type]").on('click',function() {
					app.type_target_init();
					$('#gc_idbox ul.ul-sel').html('<script art-model="goods.class" art-controller="model.goods.class" in-name="gc_id" active></script>');
					arttemplateUtil.auload($('#gc_idbox ul.ul-sel'));
				});
			},
			/**
			 * 规格初始化
			 */
			specilInit : function() {
				$("#addgg")
						.on(
								"click",
								function() {
									// 新增显示表头。
									$(".newgg").show();
									if ($("#ggbd li").length > 5) {
										Common.alert("最多可新增配送规格次数6条！");
										return false;
									} else {
										$("#ggbd")
												.append(
														"<li><div class='w150'><input type='text' name='sku_n1' class='form-control' placeholder='最多输入12个字' /></div><div class='w130'><input type='text' name='sku_n2' class='form-control' placeholder='最大值999' /></div><div class='w130'><input type='text' name='goods_price_old' class='form-control' placeholder='0.01-99999.99之间' /></div><div class='w130'><input type='text' name='goods_price_before' class='form-control' placeholder='0.01-99999.99之间' /></div><div class='w110'><input type='hidden' value='' name='skuid'/><a href='javascript:void(0);' class='deleteli'>删除</a></div></li>");
										app.removeLi();
									}
								});
				$("#ggbd").on('click','a.deleteli',function(e){
					$(this).parents('li').remove();
					var skuid = $(this).parent().find('input[name=skuid]').val();
					if(skuid !=undefined && skuid!=null && skuid!='') {
						delskuids.push(skuid);
					}
					
					if($(".newgg ul a.deleteli").length == 0){
						$(".newgg").hide();
						$('#psgg span.Validform_checktip').html('');
						$('#psgg span.Validform_checktip').removeClass('Validform_wrong');
					}
				});
				
				$("#ggbd").on("blur","input",function(){
					app.checkgg();
			    });
			},
			/**
			 * 移除行
			 * 
			 * @param {[type]}
			 *            obj [description]
			 * @return {[type]} [description]
			 */
			removeLi : function() {
				$('#itemPics').on("click",'.spanImg i.fmzp', function() {
					var successNum = $('.spanImg i.fmzp').length;//目前上传成功的数量
					var swfuploadfy = $('#uploadfyImg').data('uploadify');
					var stats = swfuploadfy.getStats();
					var successful_uploads = stats.successful_uploads;//点击新增按钮成功上传的图片个数
					//编辑状态时如果之前已经上传过图片，则将成功上传的图片数量置为页面中显示的图片数量
					if(successNum > successful_uploads) {
						successful_uploads = successNum;
					}
					var ofilename=$(this).parent('.spanImg').find('img').attr('fname');
					var path=$(this).parent('.spanImg').find('input').val().split(':')[0];
					var _atmp=$('#accTmp').val();
					if(_atmp.indexOf(path)>=0){
						_atmp=_atmp.replace(','+path,'');
					}
					$('#accTmp').val(_atmp);
					$(this).parent('.spanImg').remove();
					//删除时重置成功上传的数量
				    stats.successful_uploads = --successful_uploads;
				    swfuploadfy.setStats(stats);
					if(newque.length > 0) {
						for(var i=0; i<newque.length; i++) {
							if(newque[i] == ofilename) {
								delete newque[i];
								return;
							}
						}
					}
				});
			},
			/**
			 * [uploadifyFn 多图上传]
			 * 
			 * @return {[type]} [description]
			 */
			uploadifyFn : function() {
				$('#uploadfyImg')
						.uploadify(
								{
									'swf' : '../js/plugins/uploadify/uploadify.swf',// swf文件路径
									'uploader' : config.apiRoot()+'/api/seller/fexUpload.htm',
									'fileObjName' : 'file',// 上传附件$_FILE标识
									'fileTypeDesc' : '支持的格式：*.jpeg;*.jpeg;*.gif;*.png;*.bmp',
									'fileTypeExts' : '*.jpg;*.jpeg;*.gif;*.png;*.bmp',// 上传附件后缀限制,*.*不限制
									'fileSizeLimit' : '5MB',
									'formData' : config.setFullParameterArr({}),
									'auto' : true, // 开启,自动上传
									'multi' : true, // 开启,多选文件
									'uploadLimit' : 5, // 允许上传文件个数
									'buttonText' : '+',
									'width' : '77',
									'height' : '77',
									// 'removeTimeout':1,
									'buttonCursor' : 'hand',
									'preventCaching' : true,// 后缀加随机数,防止缓存
									'requeueErrors' : true,// 上传出现错误后,重新加入队列
									'successTimeout' : 30,// 等待服务器响应时间,超过30秒认为上传完成,
									'itemTemplate' : '<div id="${fileID}" class="uploadify-queue-item">\
                <a class="cancel" href="javascript:$(\'#${instanceID}\').uploadify(\'cancel\', \'${fileID}\');$(\'#$uploadfyImg\').uploadify(\'settings\',\'uploadLimit\', ++uploadLimit);">删除</a>\
                <p class="data"></p>\
                <p class="fileName">${fileName}</p>\
            </div>',
									'overrideEvents' : [ 'onSelectError','onDialogClose','onUploadError','onSelect' ],// 可以被用户自定义事件覆盖
									'queueID' : 'fileQueue',
									'onSWFReady' : function(file) {
										var swfuploadfy = $('#uploadfyImg').data('uploadify');
										var stats = swfuploadfy.getStats();
										stats.successful_uploads = $('.spanImg i.fmzp').length;
									    swfuploadfy.setStats(stats);
									},
									'onSelect' : function(file) {
										if(newque.length > 0) {
											for(var i=0; i<newque.length; i++) {
												if(newque[i] == file.name) {
													Common.alert("文件"+file.name+"重复");
													this.cancelUpload(file.id);
													return;
												}
											}
										}
										newque.push(file.name);
									},
									'onUploadSuccess' : function(file,
											data, response) {
										var _obj = JSON.parse(data);
										if(_obj.code==200){
											var _path=config.imgRoot()+_obj.data.path+'.png';
											var imgData = '<span class="spanImg"><i class="fmzp" style="cursor:pointer;">&#xe60c;</i><img src="'
													+ _path
													+ '" width="70" height="70" fname="'
													+ file.name
													+'"/>\
	                <input type="hidden" name="accessoryGoodsStrs" value="'
													+ _obj.data.path+':'+_obj.data.ext
													+ '" readonly /></span>';
											
											var _atmp=$('#accTmp').val();
											if(_atmp.indexOf(_obj.data.path)>=0){
												_atmp=_atmp.replace(','+_obj.data.path,'');
											}
											_atmp=_atmp+','+_obj.data.path;
											$('#accTmp').val(_atmp);
											$("#itemPics").append(imgData);
											//上传成功移除错误提示
											$(".ImgDivList").find('.Validform_checktip').removeClass('Validform_wrong').html('');
											// $('#' +
											// file.id).find('.data').html(imgData);
										}else{
											Common.alert('文件上传失败');
											if(newque.length > 0) {
												for(var i=0; i<newque.length; i++) {
													if(newque[i] == file.name) {
														delete newque[i];
														break;
													}
												}
											}
										}

									},
									//上传失败   
									'onUploadError' : function(file, errorCode, errorMsg) {
										// 手工取消不弹出提示  
								        if (errorCode == SWFUpload.UPLOAD_ERROR.FILE_CANCELLED  
								                || errorCode == SWFUpload.UPLOAD_ERROR.UPLOAD_STOPPED 
								                || errorCode == SWFUpload.UPLOAD_ERROR.UPLOAD_LIMIT_EXCEEDED) {  
								            return false;  
								        } 
										switch (errorCode) {
										case -100:
											Common.alert("上传的文件数量已经超出系统限制的"
													+ $('#uploadfyImg')
															.uploadify(
																	'settings',
																	'queueSizeLimit')
													+ "个文件！");
											break;
										case -110:
											Common.alert("文件 ["
													+ file.name
													+ "] 大小超出系统限制的"
													+ $('#uploadfyImg')
															.uploadify(
																	'settings',
																	'fileSizeLimit')
													+ "大小！");
											break;
										case -120:
											Common.alert("文件 [" + file.name
													+ "] 大小异常！");
											break;
										case -130:
											Common.alert("文件 [" + file.name
													+ "] 类型不正确！");
											break;
										}
									},
									//上传失败  
							        'onSelectError' : function(file, errorCode, errorMsg) {  
							            var msgText = "上传失败\n";  
							            switch (errorCode) {  
							                case SWFUpload.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED:  
							                    msgText += "每次最多上传 " + $('#uploadfyImg').uploadify('settings','uploadLimit') + "个文件";  
							                    break;  
							                case SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT:  
							                    msgText += "文件大小超过限制( " + $('#uploadfyImg').uploadify('settings','fileSizeLimit') + " )";  
							                    break;  
							                case SWFUpload.QUEUE_ERROR.ZERO_BYTE_FILE:  
							                    msgText += "文件大小为0";  
							                    break;  
							                case SWFUpload.QUEUE_ERROR.INVALID_FILETYPE:  
							                    msgText += "文件格式不正确，仅限 " + $('#uploadfyImg').uploadify('settings','fileTypeExts');  
							                    break;  
							                default:  
							                    msgText += "错误代码：" + errorCode + "\n" + errorMsg;  
							            }
							            Common.alert(msgText);
							            return false;
							        },
									'onUploadComplete' : function(file) {
										/*console.log("id:" + file.id
												+ " -索引:" + file.index
												+ " -文件名称:" + file.name
												+ " -文件大小:" + file.size
												+ " -文件类型:" + file.type
												+ " -创建日期:"
												+ file.creationdate
												+ " -修改日期:"
												+ file.modificationdate
												+ " -文件状态:"
												+ file.filestatus);*/
									}
								});
				
				 
				 //判断用户是否有安装flash
				  var obj = $("#uploadfyImg").children().eq(0);
				  if(obj.attr('type') != "application/x-shockwave-flash"){
					  Common.alert('系统检测到您的浏览器没有安装flash插件，为了你能够正常上传图片，建议你安装flash');
				        return;
				   }

			},
			kindeditor : function(flag) {
				if(typeof app._kindeditorobj === 'undefined' || flag){
					// options为编辑配置属性
					var options = {
						filterMode : true,
						uploadJson : config.apiRoot() + '/api/seller/fexUpload.htm?'+$.param(config.setFullParameterArr({}),true),
						webpath : config.apiRoot(),
						imgpath : config.imgRoot(),
						width : '860px',
						height : '400px',
						resizeType : 1,
						allowImageUpload : true,
						allowFlashUpload : false,
						allowMediaUpload : false,
						allowFileManager : false,
						syncType : "form",
						afterCreate : function() {
							var self = this;
							self.sync();
						},
						afterChange : function() {
							var self = this;
							self.sync();
						},
						afterBlur : function() {
							var self = this;
							self.sync();
							//失去焦点时验证
							var content = $('#goods_details')[0].value;
							var reg = new RegExp("&nbsp;","g");//g,表示全部替换
							if(content!=null && $.trim(content.replace(reg,''))!="") {
								$('#goods_details').parent().find('.Validform_checktip').removeClass('Validform_wrong').html('');
							} else {
								$('#goods_details').parent().find('.Validform_checktip').addClass('Validform_wrong').html('请填写商品详情!');
							}
						},
						items : [ 'source', '|', 'fullscreen', 'undo', 'redo',
								'cut', 'copy', 'paste', 'plainpaste',
								'wordpaste', '|', 'justifyleft',
								'justifycenter', 'justifyright', 'justifyfull',
								'insertorderedlist', 'insertunorderedlist',
								'indent', 'outdent', 'subscript',
								'superscript', '|', 'selectall', 'clearhtml',
								'quickformat', '|', 'formatblock', 'fontname',
								'fontsize', '|', 'forecolor', 'hilitecolor',
								'bold', 'italic', 'underline', 'strikethrough',
								'lineheight', 'removeformat', '|',
								'webuploader_bath', 'table', 'hr', 'emoticons',
								'link', 'unlink' ]
					};
					app._kindeditorobj=KindEditor.create('#goods_details', options);
				}
				return app._kindeditorobj;
			}
	};
	return {type_target_init:app.type_target_init}
});